package cn.patient.pp.module.fiveInOne.util;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class CommonUtils {

    /**
     * 从18位身份证号码中提取出生日期
     *
     * @param idNumber 18位身份证号码字符串
     * @return 格式为LocalDate
     */
    public static LocalDate extractBirthDateFromIdNumber(String idNumber) {
        // 定义默认日期
        LocalDate defaultDate = LocalDate.of(1900, 1, 1);

        if (idNumber == null || idNumber.length() != 18) {
            return defaultDate;
        }

        // 提取出生日期的部分，即从第7位到第14位
        String birthDateStr = idNumber.substring(6, 14);

        try {
            // 将字符串解析为LocalDate对象
            return LocalDate.parse(birthDateStr, DateTimeFormatter.BASIC_ISO_DATE);
        } catch (DateTimeParseException e) {
            return defaultDate;
        }
    }

}
